/// 日志类型枚举。
enum LoggerEnum implements Comparable<LoggerEnum> {
  /// 未知
  unknown(code: 'U', value: 0),

  /// 调试
  debug(code: 'D', value: 1),

  /// 信息
  info(code: 'I', value: 2),

  /// 警告
  warn(code: 'W', value: 3),

  /// 错误
  error(code: 'E', value: 4),

  /// 例外
  fatal(code: 'F', value: 5);

  final String code;

  final int value;

  const LoggerEnum({
    required this.code,
    required this.value,
  });

  @override
  int compareTo(LoggerEnum other) => value - other.value;

  //  /**
  //   * 转换级别为代码。
  //   *
  //   * @certify 220423
  //   * @param levelCd 级别
  //   * @return 代码
  //   */
  //  public static convertCode(levelCd: LoggerEnum): string {
  //     switch (levelCd) {
  //        case LoggerEnum.Fatal:
  //           return 'F';
  //        case LoggerEnum.Error:
  //           return 'E';
  //        case LoggerEnum.Warn:
  //           return 'W';
  //        case LoggerEnum.Info:
  //           return 'I';
  //        default:
  //           return 'D';
  //     }
  //  }

  //  /**
  //   * 转换级别为代码。
  //   *
  //   * @certify 220423
  //   * @param levelCd
  //   * @return 代码
  //   */
  //  public static convertName(levelCd: LoggerEnum): string {
  //     switch (levelCd) {
  //        case LoggerEnum.Fatal:
  //           return 'fatal';
  //        case LoggerEnum.Error:
  //           return 'error';
  //        case LoggerEnum.Warn:
  //           return 'warn';
  //        case LoggerEnum.Info:
  //           return 'info';
  //        default:
  //           return 'debug';
  //     }
  //  }
}
